home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / slatrd.z / slatrd
Text File  |  1996-03-14  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      SLATRD - reduce NB rows and columns of a real symmetric matrix A to
  10.      symmetric tridiagonal form by an orthogonal similarity transformation Q'
  11.      * A * Q, and returns the matrices V and W which are needed to apply the
  12.      transformation to the unreduced part of A
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE SLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
  16.  
  17.          CHARACTER      UPLO
  18.  
  19.          INTEGER        LDA, LDW, N, NB
  20.  
  21.          REAL           A( LDA, * ), E( * ), TAU( * ), W( LDW, * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      SLATRD reduces NB rows and columns of a real symmetric matrix A to
  25.      symmetric tridiagonal form by an orthogonal similarity transformation Q'
  26.      * A * Q, and returns the matrices V and W which are needed to apply the
  27.      transformation to the unreduced part of A.
  28.  
  29.      If UPLO = 'U', SLATRD reduces the last NB rows and columns of a matrix,
  30.      of which the upper triangle is supplied;
  31.      if UPLO = 'L', SLATRD reduces the first NB rows and columns of a matrix,
  32.      of which the lower triangle is supplied.
  33.  
  34.      This is an auxiliary routine called by SSYTRD.
  35.  
  36.  
  37. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  38.      UPLO    (input) CHARACTER
  39.              Specifies whether the upper or lower triangular part of the
  40.              symmetric matrix A is stored:
  41.              = 'U': Upper triangular
  42.              = 'L': Lower triangular
  43.  
  44.      N       (input) INTEGER
  45.              The order of the matrix A.
  46.  
  47.      NB      (input) INTEGER
  48.              The number of rows and columns to be reduced.
  49.  
  50.      A       (input/output) REAL array, dimension (LDA,N)
  51.              On entry, the symmetric matrix A.  If UPLO = 'U', the leading n-
  52.              by-n upper triangular part of A contains the upper triangular
  53.              part of the matrix A, and the strictly lower triangular part of A
  54.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  55.              triangular part of A contains the lower triangular part of the
  56.              matrix A, and the strictly upper triangular part of A is not
  57.              referenced.  On exit:  if UPLO = 'U', the last NB columns have
  58.              been reduced to tridiagonal form, with the diagonal elements
  59.              overwriting the diagonal elements of A; the elements above the
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              diagonal with the array TAU, represent the orthogonal matrix Q as
  75.              a product of elementary reflectors; if UPLO = 'L', the first NB
  76.              columns have been reduced to tridiagonal form, with the diagonal
  77.              elements overwriting the diagonal elements of A; the elements
  78.              below the diagonal with the array TAU, represent the  orthogonal
  79.              matrix Q as a product of elementary reflectors.  See Further
  80.              Details.  LDA     (input) INTEGER The leading dimension of the
  81.              array A.  LDA >= (1,N).
  82.  
  83.      E       (output) REAL array, dimension (N-1)
  84.              If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements of
  85.              the last NB columns of the reduced matrix; if UPLO = 'L', E(1:nb)
  86.              contains the subdiagonal elements of the first NB columns of the
  87.              reduced matrix.
  88.  
  89.      TAU     (output) REAL array, dimension (N-1)
  90.              The scalar factors of the elementary reflectors, stored in
  91.              TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.  See
  92.              Further Details.  W       (output) REAL array, dimension (LDW,NB)
  93.              The n-by-nb matrix W required to update the unreduced part of A.
  94.  
  95.      LDW     (input) INTEGER
  96.              The leading dimension of the array W. LDW >= max(1,N).
  97.  
  98. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  99.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  100.      reflectors
  101.  
  102.         Q = H(n) H(n-1) . . . H(n-nb+1).
  103.  
  104.      Each H(i) has the form
  105.  
  106.         H(i) = I - tau * v * v'
  107.  
  108.      where tau is a real scalar, and v is a real vector with
  109.      v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and
  110.      tau in TAU(i-1).
  111.  
  112.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  113.      reflectors
  114.  
  115.         Q = H(1) H(2) . . . H(nb).
  116.  
  117.      Each H(i) has the form
  118.  
  119.         H(i) = I - tau * v * v'
  120.  
  121.      where tau is a real scalar, and v is a real vector with
  122.      v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and
  123.      tau in TAU(i).
  124.  
  125.      The elements of the vectors v together form the n-by-nb matrix V which is
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          SSSSLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      needed, with W, to apply the transformation to the unreduced part of the
  141.      matrix, using a symmetric rank-2k update of the form:  A := A - V*W' -
  142.      W*V'.
  143.  
  144.      The contents of A on exit are illustrated by the following examples with
  145.      n = 5 and nb = 2:
  146.  
  147.      if UPLO = 'U':                       if UPLO = 'L':
  148.  
  149.        (  a   a   a   v4  v5 )              (  d                  )
  150.        (      a   a   v4  v5 )              (  1   d              )
  151.        (          a   1   v5 )              (  v1  1   a          )
  152.        (              d   1  )              (  v1  v2  a   a      )
  153.        (                  d  )              (  v1  v2  a   a   a  )
  154.  
  155.      where d denotes a diagonal element of the reduced matrix, a denotes an
  156.      element of the original matrix that is unchanged, and vi denotes an
  157.      element of the vector defining H(i).
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.